﻿#ifndef __GAF_ACT_H__
#define __GAF_ACT_H__

namespace GAF
{
	struct ActionIntent;
	//class Player
		//class Animation -* Runnable
			class Action;
}
typedef GAF::ActionIntent		GAF_SActionIntent;
typedef GAF::Action			GAF_CAction;

namespace GAF
{
	enum ActionMode
	{
		ACTION_AGAIN,		// 重复动作模式
		ACTION_RETURN		// 返复动作模式
	};
}

#include "GAF_Define.h"
#include "GAF_Animation.h"
#include "GAF_Graphics.h"

namespace GAF
{
	struct ActionIntent
	{
		ActionIntent()
		{
			Reset();
		}

		void Reset()
		{
			return;
		}

		void CopyControl(ActionIntent* paiOther)
		{
		}
	};

	/// 绘制对象动作基类
	class _ABSTRACT Action : public Animation
	{
	public:
		Action();
		virtual ~Action();

	public:
 		/// 绑定的可绘制对象属性
 		DIM_ATTRIB(Graphics*, HostGraphics);

	protected:
		/// 设置动作目标效果
		virtual void		SetIntent(ActionIntent* pIntent)
					{return;}

// 继承
// 	protected:
// 		virtual bool		OnPlay(Bundle* pParam)
// 					{return true;}
// 		virtual bool		OnPause()
// 					{return true;}
// 		virtual bool		OnStop()
// 					{return true;}
	};

}

#endif